import { defineStore } from 'pinia'
import { getMenuObj, getFirstPath,formatRoute,getMenuPath } from './utils.js'
import router from "@/router";
/**
 * 登录用户状态管理
 * 
 * */
export const useStore = defineStore('store', {
  state: () => ({
    token: '',
    userInfos: {}, // 用户信息
    userMenus: [] // 用户菜单树
  }),
  getters: {
    //获取token
    getToken:(state)=>{
      return state.token;
    },
    // 登录用户信息
    userInfo: (state) => {
      return state.userInfos
    },
    // 菜单对象: key为path, value为{ name: '', buttons: [] }
    menuObj: (state) => {
      return state.userMenus
    },
    // 获取菜单路径
    menuPath: (state) => {
      return getMenuPath(state.userMenus)
      // return this.userMenus[0];
    },
     //防止刷新失去路由 再次加入路由
     againJoinRoute:(state) => {
       formatRoute(state.userMenus);//加入动态路由
      //  console.log(router.getRoutes(),"路由啊..");
      return true;
      // return this.userMenus[0];
    }
  },
  actions: {
    // 登录
    setLogin(obj) {
      // console.log(obj,"6+6");
      this.token = obj.token;
      this.userInfos = obj.user;
    },
    // 退出登录
    setLogout() {
      this.token = ''
      this.userInfos = {}
    },
    // 获取菜单
     setUserMenus(arr) {
      formatRoute(arr);//加入动态路由
      // console.log(router.getRoutes(),"路由");
      this.userMenus = arr;
    }
  },
  // 状态持久化
  persist: {
    enabled: true,
    strategies: [{
      key: 'store',
      storage: sessionStorage
    }]
  }
})

//菜单数据结构
  // 用户菜单，模拟接口返回
//   const data = [
  //       {
  //         "id": 1,
  //         "path": "",
  //         "name": "",
  //         "icon": "document",
  //         "title": "系统管理",
  //         "pid": 0,
  //         "type": 1,
  //         "children": [
  //             {
  //                 "id": 2,
  //                 "path": "/sys/admin/index",
  //                 "name": "sys/admin",
  //                 "icon": "",
  //                 "title": "管理员",
  //                 "pid": 1,
  //                 "type": 1
  //             },
  //             {
  //                 "id": 3,
  //                 "path": "/sys/role/index",
  //                 "name": "sys/role",
  //                 "icon": "",
  //                 "title": "角色管理",
  //                 "pid": 1,
  //                 "type": 1
  //             }
  //         ]
  //     },
  //     {
  //         "id": 4,
  //         "path": "",
  //         "name": "",
  //         "icon": "document",
  //         "title": "用户管理",
  //         "pid": 0,
  //         "type": 1,
  //         "children": [
  //             {
  //                 "id": 5,
  //                 "path": "/baseCase/index"",
  //                 "name": "baseCase",
  //                 "icon": "",
  //                 "title": "用户列表",
  //                 "pid": 4,
  //                 "type": 1
  //             },
  //             {
  //                 "id": 6,
  //                 "path": "/wangEditor/index",
  //                 "name": "wangEditor",
  //                 "icon": "",
  //                 "title": "用户分类",
  //                 "pid": 4,
  //                 "type": 1
  //             }
  //         ]
  //     }
  // ]